function add0(m) {
  return m < 10 ? '0' + m : m
}

export default {
  install(Vue, options) {
    Vue.prototype.CustomVersion = function () {//全局变量custom_version=0：正常公有云，custom_version=1，私有化定制 //custom_version=2为电量私有化
        return 0
    }
    Vue.prototype.GetQueryString = function (name) {
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
      var r = window.location.search.substr(1).match(reg);
      console.log(r)
      console.log(reg)
      console.log(window.location.search)
      if (r != null) return unescape(r[2]);
      return null;
    }

      Vue.prototype.urlapi = "";

    Vue.prototype.menubt = ' '; //可以自定义变量
    console.log(Vue.prototype.menubt);
    Vue.prototype.convert = function (points) {
      var x = points.lng,
        y = points.lat;
      var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * 3.14159265358979324 * 3000.0 / 180.0)
      var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * 3.14159265358979324 * 3000.0 / 180.0)
      points.lng = z * Math.cos(theta) + 0.0130;
      points.lat = z * Math.sin(theta) + 0.007;
      return points;
    }

    Vue.prototype.wgs84togcj02 = function (bd_lon, bd_lat) {
      // console.log(bd_lon)
      // console.log(bd_lat)
      return wgs84togcj02(bd_lon, bd_lat)
    };

    /**
     *火星坐标系（GCJ-02）与百度坐标系（BD-09）的转换
     *即谷歌、高德 转 百度
     *
     */
    Vue.prototype.gcj02tobd09 = function (lng, lat) {
      // console.log(lng)
      // console.log(lat)
      return gcj02tobd09(lng, lat)
    };
    Vue.prototype.gcj02towgs84 = function (bd_lon, bd_lat) {
      // console.log(bd_lon)
      // console.log(bd_lat)
      return gcj02towgs84(bd_lon, bd_lat)
    };

 
    Vue.prototype.bd09togcj02 = function (lng, lat) {
      // console.log(lng)
      // console.log(lat)
      return bd09togcj02(lng, lat)
    };
    Vue.prototype.begCode = function (ev, s) { //给自定义方法起个名
        if (ev == 403) {
          this.$message({
            message: '您没有权限访问',
            type: 'warning'
          });
          // this.$router.push({
          //   path: "/403"
          // });
          return false;
        } else if (ev == 401) {

          localStorage.removeItem('key');
          localStorage.removeItem('menu');
          this.$message({
            message: '账号会话已过期，请重新登录',
            type: 'warning'
          });
          this.$router.push({
            path: "/login"
          });

          return false;
        } else if (ev == 400) {
          this.$message({
            message: '数据有误，请检查提交数据正确性',
            type: 'warning'
          });

        } else if (ev == undefined) {
          this.$message({
            message: '服务器连接超时',
            type: 'warning'
          });

        } else if (ev == 500) {
          this.$message({
            message: '服务器连接超时',
            type: 'warning'
          });

        } else if (ev == 1203) {
          this.$message({
            message: '名称已存在',
            type: 'warning'
          });

        } else if (ev == 0) {
          return true;
        } else {
          this.$message({
            message: s,
            type: 'warning'
          });

          return false;
        }
      },

      Vue.prototype.getLocalTime = function (shijianchuo) {
        shijianchuo = shijianchuo * 1000;
        var time = new Date(shijianchuo);
        var y = time.getFullYear();
        var m = time.getMonth() + 1;
        var d = time.getDate();
        var h = time.getHours();
        var mm = time.getMinutes();
        var s = time.getSeconds();
        return y + '-' + add0(m) + '-' + add0(d) + ' ' + add0(h) + ':' + add0(mm) + ':' + add0(s);
      },
      Vue.prototype.getCookie = function (name) {
        var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
        if (arr = document.cookie.match(reg))
          return (arr[2]);
        else
          return null;
      },
      Vue.prototype.setCookie = function (c_name, value, expiredays) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + expiredays);
        document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
      },
      Vue.prototype.delCookie = function (name) {
        var exp = new Date();
        exp.setTime(exp.getTime() - 1);
        var cval = this.getCookie(name);
        if (cval != null)
          document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
      }
  },
  name: "app",
  components: {},
  methods: {
    open3() {
      this.$notify({
        title: "成功",
        message: "这是一条成功的提示消息",
        type: "success"
      });
    }
  },
  mounted() {
    var _this = this;
    let user = JSON.parse(sessionStorage.getItem("user"));
    if (user) {
      setInterval(() => {
        _this.open3();
      }, 1000);
    }

    // setInterval(_this.open3(),1000)
  }
};

// var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
// var PI = 3.1415926535897932384626;
// var a = 6378245.0;
// var ee = 0.00669342162296594323;

// /**
//  * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换
//  * 即 百度 转 谷歌、高德
//  * @param bd_lon
//  * @param bd_lat
//  * @returns {*[]}
//  */
// function bd09togcj02(bd_lon, bd_lat) {
//   var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
//   var x = bd_lon - 0.0065;
//   var y = bd_lat - 0.006;
//   var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
//   var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
//   var gg_lng = z * Math.cos(theta);
//   var gg_lat = z * Math.sin(theta);
//   return [gg_lng, gg_lat]
// }

// /**
//  * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
//  * 即谷歌、高德 转 百度
//  * @param lng
//  * @param lat
//  * @returns {*[]}
//  */
// function gcj02tobd09(lng, lat) {
//   var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
//   var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
//   var bd_lng = z * Math.cos(theta) + 0.0065;
//   var bd_lat = z * Math.sin(theta) + 0.006;
//   return [bd_lng, bd_lat]
// }

// /**
//  * WGS84转GCj02
//  * @param lng
//  * @param lat
//  * @returns {*[]}
//  */
// function wgs84togcj02(lng, lat) {
  
//   console.log(lng)
//   console.log(lat)
//   if (out_of_china(lng, lat)) {
//     return [lng, lat]
//   } else {
    
//     console.log(lat)
//     lat = parseFloat(lat);
//     lng = parseFloat(lng);
//     console.log(lat)
//     console.log(lng)
//     var dlat = transformlat(lng - 105.0, lat - 35.0);
//     var dlng = transformlng(lng - 105.0, lat - 35.0);
//     var radlat = lat / 180.0 * PI;
//     var magic = Math.sin(radlat);
//     magic = 1 - ee * magic * magic;
//     var sqrtmagic = Math.sqrt(magic);
//     dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
//     dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
//     console.log(lat)
//     console.log(dlat)
//     var mglat = lat + dlat;
//     var mglng = lng + dlng;
//     return [mglng, mglat]
//   }
// }

// /**
//  * GCJ02 转换为 WGS84
//  * @param lng
//  * @param lat
//  * @returns {*[]}
//  */
// function gcj02towgs84(lng, lat) {
//   if (out_of_china(lng, lat)) {
//     return [lng, lat]
//   } else {
//     var dlat = transformlat(lng - 105.0, lat - 35.0);
//     var dlng = transformlng(lng - 105.0, lat - 35.0);
//     var radlat = lat / 180.0 * PI;
//     var magic = Math.sin(radlat);
//     magic = 1 - ee * magic * magic;
//     var sqrtmagic = Math.sqrt(magic);
//     dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
//     dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
//     mglat = lat + dlat;
//     mglng = lng + dlng;
//     return [lng * 2 - mglng, lat * 2 - mglat]
//   }
// }

// function transformlat(lng, lat) {
//   var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
//   ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
//   ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
//   ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
//   return ret
// }

// function transformlng(lng, lat) {
//   var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
//   ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
//   ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
//   ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
//   return ret
// }

// /**
//  * 判断是否在国内，不在国内则不做偏移
//  * @param lng
//  * @param lat
//  * @returns {boolean}
//  */
// function out_of_china(lng, lat) {
//   return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
// }
var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
var PI = 3.1415926535897932384626;
var a = 6378245.0;
var ee = 0.00669342162296594323;
/**
 * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换
 * 即 百度 转 谷歌、高德
 * @param bd_lon
 * @param bd_lat
 * @returns {*[]}
 */
var bd09togcj02 = function bd09togcj02(bd_lon, bd_lat) {
    var bd_lon = +bd_lon;
    var bd_lat = +bd_lat;
    var x = bd_lon - 0.0065;
    var y = bd_lat - 0.006;
    var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_PI);
    var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_PI);
    var gg_lng = z * Math.cos(theta);
    var gg_lat = z * Math.sin(theta);
    return [gg_lng, gg_lat]
};

/**
 * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
 * 即谷歌、高德 转 百度
 * @param lng
 * @param lat
 * @returns {*[]}
 */
var gcj02tobd09 = function gcj02tobd09(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
    var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
    var bd_lng = z * Math.cos(theta) + 0.0065;
    var bd_lat = z * Math.sin(theta) + 0.006;
    return [bd_lng, bd_lat]
};

/**
 * WGS84转GCj02
 * @param lng
 * @param lat
 * @returns {*[]}
 */
var wgs84togcj02 = function wgs84togcj02(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    if (out_of_china(lng, lat)) {
        return [lng, lat]
    } else {
        var dlat = transformlat(lng - 105.0, lat - 35.0);
        var dlng = transformlng(lng - 105.0, lat - 35.0);
        var radlat = lat / 180.0 * PI;
        var magic = Math.sin(radlat);
        magic = 1 - ee * magic * magic;
        var sqrtmagic = Math.sqrt(magic);
        dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
        dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
        var mglat = lat + dlat;
        var mglng = lng + dlng;
        return [mglng, mglat]
    }
};

/**
 * GCJ02 转换为 WGS84
 * @param lng
 * @param lat
 * @returns {*[]}
 */
var gcj02towgs84 = function gcj02towgs84(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    if (out_of_china(lng, lat)) {
        return [lng, lat]
    } else {
        var dlat = transformlat(lng - 105.0, lat - 35.0);
        var dlng = transformlng(lng - 105.0, lat - 35.0);
        var radlat = lat / 180.0 * PI;
        var magic = Math.sin(radlat);
        magic = 1 - ee * magic * magic;
        var sqrtmagic = Math.sqrt(magic);
        dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
        dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
        var mglat = lat + dlat;
        var mglng = lng + dlng;
        return [lng * 2 - mglng, lat * 2 - mglat]
    }
};

var transformlat = function transformlat(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
    ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
    ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
    ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
    return ret 
};

var transformlng = function transformlng(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
    ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
    ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
    ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
    return ret
};

/**
 * 判断是否在国内，不在国内则不做偏移
 * @param lng
 * @param lat
 * @returns {boolean}
 */
var out_of_china = function out_of_china(lng, lat) {
    var lat = +lat;
    var lng = +lng;
    // 纬度3.86~53.55,经度73.66~135.05
    return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55);
};